The Fourier Transform is a well-known mathematical operation for converting a signal from the time domain to the frequency domain. A Fourier Transform operates on a signal which is varying in time to derive the frequency components in the signal and their magnitudes. In the digital domain, the discrete Fourier Transform (DFT) is used to convert from the time domain to the frequency domain.
Fourier Transforms, and particularly discrete Fourier Transforms have many applications. One common application is in digital speech processing. For example, the wireless communications field, and particularly the cellular telephone communication field, has seen an exponential growth in data traffic over the past several years. However, the bandwidth availability for wireless communications is extremely limited. Accordingly, much effort has been dedicated to encoding speech data into a highly compressed form for transmission. For instance, a person can speak into a digital cellular telephone containing circuitry and/or software to digitize the speech, convert or compress it into a highly compressed digital format and transmit the compressed digital data. The receiving device contains circuitry and/or software for decoding the compressed digital data back into the original digital signal, converting it back to analog form and providing it to a listener. Digital encoding schemes for highly compressing video signals also are in wide use today. MPEG and JPEG being two of the more commonly known compression standards.
Some researchers are working on developing frequency domain compression algorithms for speech, video and other data. As such, an analog signal is first digitized and then converted into the frequency domain before it can be compressed. Accordingly, there is a need for a method and apparatus for performing Fourier Transforms as quickly as possible. Particularly, in order for frequency domain compression algorithms to be practical in the cellular telephone environment for speech signals, a Fourier Transform must be able to be performed essentially in real time.
One particularly fast way to perform discrete Fourier Transforms is known as the Fast Fourier Transform (FFT) method. Although there are many different algorithms for performing FFT, they all share a basic canonical unit operation that is repeated many times with different variables, but all sharing the same basic set of mathematical operations. The FFT algorithms can be performed in a programmable environment or by dedicated hardware. By programmable environment, we mean that the operation is performed primarily by software running on a general purpose machine, such as a FFT software algorithm running on a standard personal computer (PC). To date, purpose built dedicated hardware circuits for performing fast Fourier Transforms are under development that can approach the speeds needed for real-time applications. However, purpose built hardware is expensive and generally cannot be used for other purposes, but only for performing FFTs. Programmable environment solutions of fast Fourier Transform algorithms generally are less expensive than dedicated hardware, but usually are slower.
Accordingly, it is an object of the present invention to provide an improved hardware design for performing fast Fourier Transforms.
It is another object of the present invention to provide an improved digital processor apparatus for performing fast Fourier Transforms.
It is a further object of the present invention to provide an improved general purpose digital processor having an architecture that can perform fast Fourier Transforms very quickly.
It is yet another object of the present invention to provide an improved general purpose digital processor having an architecture that can perform fast Fourier Transforms very quickly in a programmable environment.